package  
{
	import flash.display.MovieClip;
	import flash.events.Event;
	import flash.events.KeyboardEvent;
	import flash.ui.Keyboard;
	/**
	 * ...
	 * @author Adriano
	 */
	public class Main extends MovieClip
	{
		var MC_tela:MovieClip = new MovieClip;
		var MC_nave:Nave;
		var MC_inimigo:Inimigo;
		var MC_tiro:Tiro;
		
		var IN_delay_tiro:int = 10;
		var IN_delay_inimigo = 10;
		
		var AR_tiro:Array;
		var AR_inimigo:Array;
		
		var BO_cima : Boolean = false;
		var BO_baixo : Boolean = false;
		var BO_esq : Boolean = false;
		var BO_dir : Boolean = false;
		var BO_space : Boolean = false;
		
		public function Main() 
		{
			iniciarJogo();
			addEventListener(Event.ENTER_FRAME,	atualizar, false,0, true);
			stage.addEventListener(KeyboardEvent.KEY_DOWN, pressionar);
			stage.addEventListener(KeyboardEvent.KEY_UP, soltar)
		}
		
		public function atualizar(e:Event):void 
		{
			moverHeroi();
			criarInimigo();
			
			for each(MC_tiro in AR_tiro)
			{
				MC_tiro.atualizar();
			}
			for each(MC_inimigo in AR_inimigo)
			{
				MC_inimigo.atualizar();
			}
		}
		
		private function iniciarJogo():void 
		{
			addChild(MC_tela)
			
			AR_tiro = new Array();
			AR_inimigo = new Array();
			
			MC_nave = new Nave();
			MC_nave.x = 20;
			MC_nave.y = stage.stageHeight / 2;
			MC_tela.addChild(MC_nave);
		}
		
		public function pressionar(e:KeyboardEvent) : void
		{
		switch(e.keyCode)
		{
			case Keyboard.UP:
				BO_cima = true;
			break;
			
			case Keyboard.DOWN:
				BO_baixo = true;
			break;
			
			case Keyboard.RIGHT:
				BO_dir = true;
			break;
			
			case Keyboard.LEFT:
				BO_esq = true;
			break;
			case Keyboard.SPACE:
				BO_space = true;
			break;	
			
		}
		}

				public function soltar(e:KeyboardEvent) : void
				{
					switch(e.keyCode)
					{
						case Keyboard.UP:
							BO_cima = false;
						break;
						
						case Keyboard.DOWN:
							BO_baixo = false;
						break;
						
						case Keyboard.RIGHT:
							BO_dir = false;
						break;
						
						case Keyboard.LEFT:
							BO_esq = false;
						break;
						case Keyboard.SPACE:
				            BO_space = false;
			            break;
						
					}
				}


			private function moverHeroi():void
			{
				if(BO_dir == true)
				{
					MC_nave.x+=MC_nave.IN_valocidade;
				}
				
				if(BO_esq == true)
				{
					MC_nave.x-=MC_nave.IN_valocidade;
				}
				
				if(BO_cima == true)
				{
					MC_nave.y-=MC_nave.IN_valocidade;
				}
				
				if(BO_baixo == true)
				{
					MC_nave.y+=MC_nave.IN_valocidade;
				}
				if (BO_space == true)
				{
					IN_delay_tiro--;
					if (IN_delay_tiro <= 0)
					{
						atirar();
					}
				}
				
			}
			
			private function atirar():void
			{
				MC_tiro = new Tiro();
				MC_tiro.x = MC_nave.x;
				MC_tiro.y = MC_nave.y;
				MC_tela.addChild(MC_tiro)
				AR_tiro.push(MC_tiro);
				
				IN_delay_tiro = 20;
			}
			
			private function criarInimigo():void
			{
				
				IN_delay_inimigo--;
				if (IN_delay_inimigo <= 0)
				{
					MC_inimigo = new Inimigo();
					MC_inimigo.x = stage.stageWidth + MC_inimigo.width;
					MC_inimigo.y = Math.random() * 750;
					MC_tela.addChild(MC_inimigo);
					AR_inimigo.push(MC_inimigo);
					IN_delay_inimigo = 30;
				}
				
				
				
			}
			
		
	}

}